package com.sgj.filterchain.test3;

/**
 * 责任链模式
 * @Author: Guoji Shen
 * @Date: 2021/11/19 10:39
 */
public class Client {
    public static void main(String[] args) {
        /**
         * 执行代码中，显示构建了领导实例对象，然后每个领导能审批的金额是多少进行设置，再对领导人的上级领导进行关联，
         * 这样领导人就形成了一条链，我们再将申请人放入这条链，让他从链的开头进行滚动执行，直到有领导审批为止！
         */

        // 领导们
        Leader500 leader500 = new Leader500();
        Leader1000 leader1000 = new Leader1000();
        Leader1500 leader1500 = new Leader1500();
        Leader2000 leader2000 = new Leader2000();

        leader500.setCurrentMoney(500);
        leader1000.setCurrentMoney(1000);
        leader1500.setCurrentMoney(1500);
        leader2000.setCurrentMoney(2000);

        leader500.setSuperiorLeader(leader1000);
        leader1000.setSuperiorLeader(leader1500);
        leader1500.setSuperiorLeader(leader2000);

        // 申请人
        Person person = new Person();
        person.setMoney(2000);

        leader500.dealInfo(person);
    }
}